package com.tchhy.provider.data.healthy.response

import android.os.Parcel
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
import java.io.Serializable

/**
 * Created by easyfuture on 2020-02-13
 */

data class AdvertizimentRes(
    var advertType: Int,//广告类型(1-启动图、2-闪屏、3-首页banner、4-健康档案-体重值、5-健康档案-血压值 6-健康档案-血糖值 7-健康档案步数 8-健康档案经期 9-视乎等待 10-天呈百科-药品 11-天呈百科疾病 12-环保banner 13-活动入口图)
    var contentName: String?,//内容名称
    var contentType: Int,//内容样式（1.单张图片2.轮播图）
    var id: String?,
    var imgType: Int,//（图片配置类型（1.网络图片，2.本地图片））
    var isAddress: Int,//（是否有跳转地址0无1有）
    var isFrequency: Int,//是否有频次（0无1有）
    var isTime: Int,//是否有时长（0无，1有）
    var jumpAddress: String?,//跳转地址
    var showFrequency: Int,//显示频次（1.一天出现一次：自然天在第一次启动时展示； 2.前后台切换时出现：每次前后台切换都出现； 3.每次启动出现：每次启动都出现。）
    var showTime: Int,//显示时长
    var timeInterval: Int,
    var updateTime: String?,
    var localImg: List<LocalImg>?,
    var networkImg: List<NetworkImg>?,
    var isShow:String?//闪屏是否展示配置（0-是 1-否
):Parcelable {
    constructor(parcel: Parcel) : this(
        parcel.readInt(),
        parcel.readString(),
        parcel.readInt(),
        parcel.readString(),
        parcel.readInt(),
        parcel.readInt(),
        parcel.readInt(),
        parcel.readInt(),
        parcel.readString(),
        parcel.readInt(),
        parcel.readInt(),
        parcel.readInt(),
        parcel.readString(),
        parcel.createTypedArrayList(LocalImg),
        parcel.createTypedArrayList(NetworkImg),
        parcel.readString()
    ) {
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeInt(advertType)
        parcel.writeString(contentName)
        parcel.writeInt(contentType)
        parcel.writeString(id)
        parcel.writeInt(imgType)
        parcel.writeInt(isAddress)
        parcel.writeInt(isFrequency)
        parcel.writeInt(isTime)
        parcel.writeString(jumpAddress)
        parcel.writeInt(showFrequency)
        parcel.writeInt(showTime)
        parcel.writeInt(timeInterval)
        parcel.writeString(updateTime)
        parcel.writeTypedList(localImg)
        parcel.writeTypedList(networkImg)
        parcel.writeString(isShow)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<AdvertizimentRes> {
        override fun createFromParcel(parcel: Parcel): AdvertizimentRes {
            return AdvertizimentRes(parcel)
        }

        override fun newArray(size: Int): Array<AdvertizimentRes?> {
            return arrayOfNulls(size)
        }
    }
}

data class LocalImg(
    var imgUrl: String?,
    var state: String?,//是否可以点击 1代表可点击
    var url: String?
):Parcelable {
    constructor(parcel: Parcel) : this(
        parcel.readString(),
        parcel.readString(),
        parcel.readString()
    ) {
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(imgUrl)
        parcel.writeString(state)
        parcel.writeString(url)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<LocalImg> {
        override fun createFromParcel(parcel: Parcel): LocalImg {
            return LocalImg(parcel)
        }

        override fun newArray(size: Int): Array<LocalImg?> {
            return arrayOfNulls(size)
        }
    }
}

data class NetworkImg(
    var imgUrl: String?,
    var state: String?,
    var url: String?
):Parcelable {
    constructor(parcel: Parcel) : this(
        parcel.readString(),
        parcel.readString(),
        parcel.readString()
    ) {
    }

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(imgUrl)
        parcel.writeString(state)
        parcel.writeString(url)
    }

    override fun describeContents(): Int {
        return 0
    }

    companion object CREATOR : Parcelable.Creator<NetworkImg> {
        override fun createFromParcel(parcel: Parcel): NetworkImg {
            return NetworkImg(parcel)
        }

        override fun newArray(size: Int): Array<NetworkImg?> {
            return arrayOfNulls(size)
        }
    }
}